很多人不知道 Android 和 Linux(如 Ubuntu) 的关系

🔍 溯源 ✍️ Jason | 📅 2026-08-21 | 👍 0 | 原帖↗
#知识星球 #立芯嵌入式 #来源/立芯星球 #技术/Android #技术/Linux #质量/普通

原帖 | Jason | 2026-08-21 10:48 | 👍0 | 阅读约1

很多人不知道 Android 和 Linux(如 Ubuntu) 的关系,其实 Android 是基于 Linux 内核开发的,底层一样,上层文件系统不一样,如图所示。

我认为,你会 Linux 驱动开发,就几乎等同于会 Android 驱动开发。

内核层:两者底层都是 Linux。

普通 Linux:主线内核,社区维护。

Android:基于 ACK 内核,打了大量谷歌补丁,多出 binder、ashmem、lowmemorykiller、wakelock 这些安卓专属驱动,主线 Linux 默认没有。

用户态:

普通 Linux(Ubuntu/Debian)

  • C库:glibc
  • 初始化:systemd / busybox init
  • 程序:gcc 编译 ELF,bash shell,apt 直接装软件

Android

  • C库:bionic libc,不是 glibc。Ubuntu 编译出来的程序直接拷过来基本跑不起来
  • 初始化:Android init + .rc 脚本,和systemd 不兼容
  • APP 跑 ART 虚拟机,apk 格式;原生程序要用 NDK 编译
  • shell 是 mksh,很多常用命令被砍掉

调试

  • Linux:串口、ssh,gdb、perf、strace 工具齐全,/proc /sys随便看

  • Android:主要用 adb;日志分 logcat(应用) 和 dmesg(内核);SELinux 限制多,就算root,很多节点依旧访问不了

选型

选标准 Linux:机器人、数采、网关,大量C/C++ 程序,需要 apt 装开源软件,不需要 apk。

选 Android:要跑 apk、触控屏幕,行业终端类产品,消费类电子行业 Android 居多。

Android 系统极度消耗内存,目前的内存价格贵,因此要多做考量。

c77ae79574da.jpg

4aca76c9baec.jpg

f5ce20c75f53.jpg


相关笔记